Microsoft DirectX 8.1 (C++)

What's New in DirectPlay

New Features for DirectPlay 8.1

Microsoft® DirectX 8.1® is a major release primarily for DirectX graphics. The improvements for Microsoft DirectPlay® are primarily performance enhancements.

To find out more about the new features in DirectX, see What's New in DirectX 8.1.

New Features for DirectPlay 8.0

The networking component of DirectX has undergone a major revision. DirectPlay introduces a new set of interfaces that enable games to have more direct access to the hardware, providing better performance.

The following list describes some of the new DirectPlay features.

Interfaces have been completely rewritten.
The complexity of creating a networked application has been dramatically simplified by separating the interfaces for creating peer-to-peer and client/server sessions. The interfaces for creating DirectPlay transport sessions, which are defined in the Dplay8.h header file, are now:
IDirectPlay8Peer
Provides methods for creating peer-to-peer sessions.
IDirectPlay8Client
Provides methods for creating the client-side portion of a client/server application.
IDirectPlay8Server
Provides methods for creating the server-side portion of a client/server application.
Lobbying is now independent from the rest of DirectPlay.
DirectPlay has removed the requirement that a lobby client work only with a DirectPlay application. This will allow either the lobby service provider or the application to implement DirectPlay independently. Lobby implementation is now separated into two simplified interfaces that are defined in the Dplobby8.h header file.
IDirectPlay8LobbyClient
This interface is used to manage a lobby client and for enumerating and launching lobby-aware applications.
IDirectPlay8LobbiedApplication
This interface is used to register a lobby launchable application with the system so it can be lobby launched. It also is used to get the connection information from the lobby to enable game launching without querying the user.
Voice transmission has been added.
DirectPlay Voice provides a set of interfaces to add real-time voice communication to an application. The following interfaces are defined in the Dvoice.h header file.
IDirectPlayVoiceClient
Provides methods to create and manage clients in a DirectPlay Voice session.
IDirectPlayVoiceServer
Provides methods to host and manage a DirectPlay Voice session.
IDirectPlayVoiceTest
Used to test DirectPlay Voice audio configurations.
Addressing information has moved from GUID-based data to URL-based data format.
Previous versions of DirectPlay used binary chunks of data with GUID addresses that were difficult to implement and that humans could not read. In DirectX 8.1, DirectPlay introduces the representation of addresses in URL format. A set of interfaces, defined in Dpaddr.h, is used to create and manipulate the new addressing format.
IDirectPlay8Address
Provides generic addressing methods used to create and manipulate DirectPlay addresses.
IDirectPlay8AddressIP
Provides IP provider-specific addressing services.
Higher scalability and better memory management have been added.
Increases in consumer bandwidth have dramatically affected network game design and implementation. Improved DirectPlay thread-pool management makes it easier to for the developer to design scalable, more robust applications that can support massive multiplayer online applications.
Better support for firewalls and network address translators has been added.
Writing network games that traverse network address translators (NATs), firewalls, and other Internet connection sharing (ICS) methods can be difficult, particularly for non-guaranteed (UDP) traffic. Because DirectPlay 8.1 has been developed with these issues in mind, it will support NAT solutions where possible. The DirectPlay 8 TCP/IP service provider uses a single, developer-selectable UDP port for game data, making it possible to configure firewalls and NATs appropriately. Additionally, DirectPlay makes use of UDP so that, for client/server games, clients behind some NATs will be able to connect to games without additional configuration.
Tutorials have been added.
Step-by-step instructions for creating multiplayer games are now included in the SDK. The tutorials cover how to create peer-to-peer and client/server applications, as well as how to add voice communications and add lobby launching to your application. See DirectPlay C/C++ Tutorials.
Test your application under a variety of network conditions with DP8Sim
You can now use a network simulator tool, DP8Sim, to help you predict how your application will perform under network conditions such as high latency or packet loss. DP8Sim is a simulated TCP/IP service provider applied on top of your existing network characteristics. A simple user interface (UI) allows you to easily change the simulated network settings and monitor your application's performance.